﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Persistente;
using Persistente.Postagem;

namespace Negocio.Postagem
{
    public class NPostagem
    {
        public int idPostagem;
        public DateTime dtPostagem;
        public DateTime dtPostagemGmt;
        public string tePostagem;
        public string teTitulo;
        public string csStatus; // P => postado, R => rascunho
        public int qtComentarios;
        public string csTipoPostagem;
        public string boAceitaComentario; // S, N
        public string teTextoLink;
        public int idUsuario;

        public int Salvar()
        {
            var obPPostagem = new PPostagem();
            return obPPostagem.Salvar(dtPostagem, dtPostagemGmt, tePostagem, teTitulo, csStatus, qtComentarios,
                                      csTipoPostagem, boAceitaComentario, teTextoLink, idUsuario);
        }

        public DataSet pegarPostagens(DateTime? dtPostagem = null, DateTime? dtPostagemGmt = null, string tePostagem = null, string teTitulo = null,
            string csStatus = null, int qtComentarios = 0, string csTipoPostagem = null, string boAceitaComentario = null, string teTextoLink = null, int idUsuario = 0)
        {
            var obPPostagem = new PPostagem();
            return obPPostagem.pegarPostagens(dtPostagem, dtPostagemGmt, tePostagem, teTitulo, csStatus, qtComentarios,
                                      csTipoPostagem, boAceitaComentario, teTextoLink, idUsuario);
        }

        public int contarPostagensPorTitulo(string teTitulo, int idPostagem = 0)
        {
            var obPPostagem = new PPostagem();
            return obPPostagem.contarPostagensPorTitulo(teTitulo, idPostagem);
        }

        public bool Remover(int idPostagem)
        {
            var obPPostagem = new PPostagem();
            return obPPostagem.Remover(idPostagem);
        }

        public void pegarPostagemPorId()
        {
            var obPPostagem = new PPostagem();
            var obTbPostagem = obPPostagem.pegarPostagemPorId(idPostagem);
            if (obTbPostagem != null)
            {
                idPostagem = obTbPostagem.id_postagem;
                dtPostagem = obTbPostagem.dt_postagem;
                dtPostagemGmt = obTbPostagem.dt_postagem_gmt;
                tePostagem = obTbPostagem.te_postagem;
                teTitulo = obTbPostagem.te_titulo;
                csStatus = obTbPostagem.cs_status;
                qtComentarios = obTbPostagem.qt_comentarios;
                csTipoPostagem = obTbPostagem.cs_tipo_postagem;
                boAceitaComentario = obTbPostagem.bo_aceita_comentario;
                teTextoLink = obTbPostagem.te_texto_link;
                idUsuario = obTbPostagem.usuario_id_usuario;

            }
        }

        public bool Alterar(int idPostagem)
        {
            var obPPostagem = new PPostagem();
            var obTbPostagem = new tb_postagem();
            obTbPostagem.dt_postagem = dtPostagem;
            obTbPostagem.dt_postagem_gmt = dtPostagemGmt;
            obTbPostagem.te_postagem = tePostagem;
            obTbPostagem.te_titulo = teTitulo;
            obTbPostagem.cs_status = csStatus;
            obTbPostagem.qt_comentarios = qtComentarios;
            obTbPostagem.cs_tipo_postagem = csTipoPostagem;
            obTbPostagem.bo_aceita_comentario = boAceitaComentario;
            obTbPostagem.te_texto_link = teTextoLink;
            obTbPostagem.usuario_id_usuario = idUsuario;
            return obPPostagem.Alterar(idPostagem, obTbPostagem);
        }
    }
}
